package com.rybbaby.tss.front.tssClassesLessons.dao;


import com.rybbaby.tss.core.web.dao.IGenericDao;
import com.rybbaby.tss.front.tssClassesLessons.entity.TssClassesLessons;

import java.sql.Timestamp;
import java.util.List;

import java.util.List;
import java.util.Map;

/**
 * @description 班级表数据库操作接口
 * 
 * @author 雷春琼
 * 
 * @createDate 2017-08-09 下午11:50:14
 */
public interface ITssClassesLessonsDao extends IGenericDao<TssClassesLessons> {


    /**
     * 获取指定ids的课节并排序
     * @param lessons
     * @param attribute
     * @param arrangement
     * @return
     */
    List<TssClassesLessons> findListBySqlAndOrder(String lessons,String attribute,String arrangement);



    /**
     * 根据班级Id和亲子学生id查询剩余课时数
     *
     * @return
     */
    public Integer getSurplusCurriculum(String classId, String memberId);
    /**
     * 根据班级id批量查询课节
     * @param classId
     * @return
     */
    List<Map<String,Object>> getListByClassId(String classId) ;

    Map<String, Object> findByClassIdCreateTime(String classId, Timestamp classTime);

    /**
     * 根据课节时间查询课节信息
     * @param classTime
     * @param classType
     * @return
     */
    Map<String,Object> classLessonsExchangeByClassTime(String classTime,Integer classType);

    /**
     * 根据id批量修改参数
     *
     * @param map
     * @param id
     * @return
     */
    Integer updateParameterById(Map<String, Object> map, String id);

    /**
     * 根据id查看还有多少课节可以变动
     * @param id
     * @return
     */
    Integer countCouldChangeLessons(String id);

    /**
     * 根据班级id批量查询课节
     *
     * @param classId
     * @return
     */
    List<Map<String, Object>> queryListByClassId(String classId);

    /**
     * 根据老师和上课时间查询课节信息
     * @param empAdminUserId
     * @param classTime
     * @return
     */
    List<Map<String, Object>> queryByClassTimeAndAdminUserId(String empAdminUserId,String classTime,Integer type);
}
